duplication of effort and speeding development. As software engineering efforts become more and more complex (due in part to the demand for improved user interfaces and the need importance of portability), OOP languages become indispensible to the programmer wishing to remain competitive.